package br.com.documentos.model.service;

import javax.mail.MessagingException;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import br.com.documentos.model.entity.Usuario;
import br.com.documentos.model.exceptions.DocumentosOnlineException;
import br.com.documentos.model.util.EmailUtil;

@Service
@Transactional(propagation=Propagation.REQUIRED, rollbackFor=Exception.class)
public class EmailUsuarioService {

	private static final String EMAIL_ACESSO = "comprovantes.online.arquivos@gmail.com";
	private static final String SENHA_ACESSO = "q1w2E#R$";
	
	@Autowired
	private AtivadorConta ativadorConta; 
	
	public void enviarEmailNovaSenha(Usuario usuario, String novaSenha)
	{
		try
		{
			EmailUtil email = new EmailUtil(EMAIL_ACESSO, SENHA_ACESSO, EMAIL_ACESSO);
			
			String conteudo = "A nova senha de acesso gerada é:"+ novaSenha;
			
			email.enviar("Nova Senha de Acesso - Comprovantes Online", conteudo, usuario.getEmail() );	
		}
		catch (Exception e) {
			throw new DocumentosOnlineException("Erro no envio de email de senha.", e);
		}
	}
	
	public void enviarEmailAtivacaoConta( Usuario usuario, String urlBase )
	{
		try 
		{
			EmailUtil email = new EmailUtil(EMAIL_ACESSO, SENHA_ACESSO, EMAIL_ACESSO);
			
			String enderecoAtivacao = ativadorConta.geraEnderecoAtivacao(usuario, urlBase);
			
			String conteudo = "Clique <a href='"+ enderecoAtivacao +"'>aqui</a> para ativar sua conta.";
		
			email.enviar("Ativação de Conta - Comprovantes Online", conteudo, usuario.getEmail() );
		} 
		catch (Exception e) {
			throw new DocumentosOnlineException("Erro no envio de email de ativação.", e);
		}
	}
	
	public static void main(String[] args) throws MessagingException {
		EmailUtil email = new EmailUtil(EMAIL_ACESSO, SENHA_ACESSO, EMAIL_ACESSO);
		email.enviar("Ativação de Conta - Comprovantes Online", "Ativador de conta", "rafaelolian@gmail.com" );
	}
	
}
